package com.scott.Factory.AbstractFactory;


import com.scott.Factory.product.Car;

/**
 * 抽象工厂类
 */
public abstract class AbstractFactory {

    /**
     * protected关键字的使用
     * @return
     */
    protected abstract Car getCar();

    public Car getCar(String name) {
        //这部分代码就是Spring中的动态配置
        if (name.equalsIgnoreCase("benz")) {
            return new BenzFactory().getCar();
        } else if (name.equalsIgnoreCase("bmw")) {
            return new BenzFactory().getCar();
        } else if (name.equalsIgnoreCase("audi")) {
            return new AudiFactory().getCar();
        } else {
            return null;
        }
    }
}
